package com.cxso.example.domain.wlpt.vehicle;

import com.cxso.example.enums.wlpt.VehicleEnergyTypeEnum;
import com.cxso.example.enums.wlpt.VehicleTypeEnum;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Getter;
import lombok.Setter;
import lombok.experimental.Accessors;

import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotNull;
import java.math.BigDecimal;

@Setter
@Getter
@Accessors(chain = true)
@Schema(description = "车辆认证信息")
public class ApiVehicleAuthDomain {

    @Schema(description = "车型")
    @NotNull(message = "车型不能为空")
    private VehicleTypeEnum vehicleType;

    @Schema(description = "车长")
    @NotNull(message = "车长不能为空")
    private BigDecimal vehicleLength;

    @Schema(description = "车辆能源类型")
    @NotNull(message = "车辆能源类型不能为空")
    private VehicleEnergyTypeEnum vehicleEnergyType;

    @Schema(description = "车辆识别代码")
    private String vehicleIdentificationNumber;

    @Schema(description = "行驶证")
    private String vehicleLicense;

    @Schema(description = "行驶证正面图片")
    @NotBlank(message = "行驶证正面图片不能为空")
    private String vehicleLicenseFrontImg;

    @Schema(description = "行驶证反面图片")
    @NotBlank(message = "行驶证反面图片不能为空")
    private String vehicleLicenseBackImg;

    @Schema(description = "行驶证夹页")
    private String vehicleLicenseClipImg;

    @Schema(description = "行驶证注册日期")
    private String vehicleLicenseRegisterTime;

    @Schema(description = "行驶证证有效期")
    @NotBlank(message = "行驶证证有效期不能为空")
    private String vehicleLicenseExpireTime;

    @Schema(description = "行驶证发证机关")
    private String vehicleLicenseIssuingAuthority;

    @Schema(description = "行驶证发证日期")
    private String vehicleLicenseIssuingTime;

    @Schema(description = "道路运输证")
    private String roadTransportLicense;

    @Schema(description = "道路运输证照片")
    private String roadTransportLicenseImg;

    @Schema(description = "道路运输证有效期至")
    private String roadTransportLicenseExpireTime;

    @Schema(description = "道路运输经营许可证")
    private String roadTransportBusinessLicense;

    @Schema(description = "挂车牌照号")
    private String trailerLicenseNumber;

    @Schema(description = "挂车正副本照片")
    private String trailerLicenseImg;

    @Schema(description = "人车合照")
    private String groupPhotoImg;

    @Schema(description = "总质量")
    @NotNull(message = "总质量不能为空")
    private BigDecimal totalMass;

    @Schema(description = "核定载质量")
    @NotNull(message = "核定载质量不能为空")
    private BigDecimal approvedLoad;

    @Schema(description = "整备质量")
    private BigDecimal curbWeight;

    @Schema(description = "外廓尺寸")
    private String overallDimensions;

    @Schema(description = "使用性质")
    private String useNature;

    @Schema(description = "统一社会信用代码/身份证号")
    private String creditCode;

    @Schema(description = "车辆所有人")
    private String vehicleOwner;

    @Schema(description = "车辆所有人有效期")
    private String vehicleOwnerExpireTime;

}
